var timerFile = "0:/sys/user/variables/HeaterFaultTimer.g"

M291 S4 K{"Disable", "Immediate (0 s)", "Delay 30 s", "Delay 60 s", "Delay 120 s", "Custom Duration"} R"Action after Detection Heater Fault" P"Choose how long to wait before the printer shuts down after a heater fault." F2
var choice = input
var delay = -1
var promptCanceled = false

if var.choice == 0
    set global.heaterFaultTimer = -1
    echo >{var.timerFile} "set global.heaterFaultTimer = " ^ global.heaterFaultTimer
    echo "Printer auto-shutdown after heater fault is disabled"
else
    if var.choice == 1
        set var.delay = 0
    elif var.choice == 2
        set var.delay = 30
    elif var.choice == 3
        set var.delay = 60
    elif var.choice == 4
        set var.delay = 120
    elif var.choice == 5
        M291 S5 L0 R"Heater fault timer" P"Enter the shutdown delay time after a heater fault in seconds"
        if result == -1
            set var.promptCanceled = true
        else
            set var.delay = input
    if var.promptCanceled
        echo "Heater fault timer change canceled"
    elif var.delay < 0
        abort "Invalid heater fault timer selection"
    else
        set global.heaterFaultTimer = var.delay
        echo >{var.timerFile} "set global.heaterFaultTimer = " ^ global.heaterFaultTimer
        
        if var.delay == 0
            echo "Printer auto-shutdown after heater fault is enabled with no delay"
        else
            echo "Printer auto-shutdown after heater fault is enabled with a "^var.delay^"-second timer"